package com.zhuxiaomei.service;

import com.zhuxiaomei.dto.user.*;
import com.zhuxiaomei.entity.msg.WageConversionMessage;
import com.zhuxiaomei.result.ReturnCodeEnum;
import com.zhuxiaomei.vo.user.CoupleInfoVO;
import com.zhuxiaomei.vo.user.MineVO;
import com.zhuxiaomei.vo.user.UserInfoVO;
import com.zhuxiaomei.vo.user.UserLoginVO;

import java.util.List;

/**
 * @author hxm
 * @date 2024/12/8 13:20
 * @description
 */
public interface UserService {

    UserLoginVO login(UserLoginDTO userLoginDTO);

    ReturnCodeEnum register(UserRegisterDTO userRegisterDTO);

    UserInfoVO getUserInfo(Long userId);

    Integer updateUserInfo(UserInfoVO userInfoVO);

    String updateUserPasswd(UserEditPasswdDTO userEditPasswdDTO);

    MineVO getMineInfo();

    CoupleInfoVO getCoupleInfo();

    UserInfoVO getUserInfoByAccount(String account);

    /**
     * 接受情侣邀请（true），不接受邀请（false）
     * @param coupleBindDTO
     * @return
     */
    Boolean bindCouple(CoupleBindDTO coupleBindDTO);

    /**
     * 情侣信息设置
     * @param coupleInfoVO
     * @return
     */
    Integer updateCoupleInfo(CoupleInfoVO coupleInfoVO);

    UserBalanceDTO getUserBalance();

    /**
     * 新工资转换申请
     * @param wageConversionMessage
     */
    void newWageConversion(WageConversionMessage wageConversionMessage);

    /**
     * 工资转换申请
     * @return
     */
    List<WageConversionMessage> wageConversionMessage();

    /**
     * 工资转换申请处理
     * @param wageConversionMessage
     */
    void editWageConversionMessage(WageConversionMessage wageConversionMessage);
}
